{{tag>Karmic bureau_à_distance tutoriel BROUILLON}}

----
====== XRDP ou comment se connecter depuis un client RDP® sur un serveur Ubuntu======

On peut être confronté à des machines windows<sup>®</sup> verrouillées, sur lesquelles on ne peut rien installer, et où seul le protocole [[wpfr>Remote_Desktop_Protocol|RDP®]] est disponible. Par exemple des [[wpfr>Client_léger|clients légers]].

Si l'on souhaite se connecter depuis ces machines sur un serveur Ubuntu, une seule solution : installer XRDP sur ce dernier.

===== Prérequis =====

Savoir installer un paquet, éditer un fichier et éventuellement contrôler la machine distante à l'aide d'un autre protocole, typiquement ssh.

===== Présentation =====

Xrdp est une couche s'installant sur le serveur. Elle fait office de serveur RDP<sup>®</sup> pour le client qui veut se connecter, et se comporte comme un client VNC pour le serveur ubuntu.

Entre les deux, se glisse un gestionnaire de session dénommé sesman, qui :
  * donne le choix, à la connexion, entre différents modules. Ceux-ci sont listés dans /etc/xrdp/xrdp.ini, on y trouve bien sûr VNC.
  * appelle PAM pour l'authentification.
  * fait en sorte que le néo client VNC, avatar du client RDP, se connecte à une session VNC fonctionnelle. Le plus souvent en la créant, à l'aide des paramètres choisis dans /etc/xrdp/sesman.ini et /etc/xrdp/startwm.sh.

===== Installation =====

[[:tutoriel:comment_installer_un_paquet|Installez les paquets]] **[[apt://xrdp,vnc4server|xrdp vnc4server]]**.

La dernière version de XRDP est la 0.4.1, elle est présente dans les dépôts.

===== Configuration =====

=== Configuration de sesman ===

[[:tutoriel:comment_modifier_un_fichier|Ouvrez le fichier]] **/etc/xrdp/sesman.ini**.

Pour l'instant, rien ne fonctionne, car la section [Xvnc] ne contient que deux arguments :

<code>
param1=-bs     /* désactive le "backing store support" sur tous les écrans */
param2=-ac     /* interdit l'édition des listes de contrôle d'accès par le client */
</code>

Il faut compléter cette section, de la manière suivante:

<code>
param3=-fp                         /* ces quatre paramètres corrigent le bug #78282 du paquet vnc4server */
param4=/usr/share/fonts/X11/misc
param5=-extension
param6=XFIXES</code>

Personnellement, j'y ai aussi ajouté :

<code>
param7=-depth            /* pour forcer la profondeur de couleur */
param8=16
param9=-localhost        /* pour contraindre la connexion via xrdp */
</code>

On peut aussi ajuster les autres paramètres à sa convenance (sections [Globals], [Security], etc. ...). ATTENTION, certaines options sont ignorées. (Voir la man page de sesman.ini.)

=== Menu de connexion ===

[[:tutoriel:comment_modifier_un_fichier|Ouvrez le fichier]] **/etc/xrdp/xrdp.ini**.

Conserver simplement les sections [globals] et [xrdp1] que l'on renomme pour le fun :

<code>[globals]
bitmap_cache=yes
bitmap_compression=yes
port=3389
crypt_level=low
channel_code=1
 
[xrdp1]
name=legaub vous invite sur un serveur Ubuntu
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1
</code>

Redémarrer avec :

<code>sudo /etc/init.d/xrdp restart</code>

Vous pouvez désormais vous connecter à votre serveur en utilisant le protocole RDP<sup>®</sup>.

===== Problème de configuration =====

Une difficulté surgit si l'on veut passer, par exemple -DisconnectClients=0 ou -NerverShared=1. En effet, impossible de glisser le signe "=" nulle part.

[[:tutoriel:comment_modifier_un_fichier|Ouvrez le fichier]] **/etc/xrdp/startwm.sh**.

Ajouter les lignes suivantes :

<code>vncconfig -set NeverShared=1
vncconfig -set DisconnectClients=0
</code>

Attention, l'utilisation de "vncconfig" fait que le nouveau paramètre ne sera pris en compte que lors du démarrage d'une nouvelle session.

===== Désinstallation =====

===== Pour en savoir plus =====

  * [[http://xrdp.sourceforge.net/|(en) XRDP chez sourceforge.]]
  * [[:vnc|VNC (Virtual Network Computing)]] sur la documentation ubuntu-fr.
  * [[http://planet.ubuntu-fr.org/post/2007/06/04/Connexion-a-Ubuntu-Linux-a-partir-de-windows-:-xrdp|Le tuto de juin 2007]] sur planet ubuntu-fr, qui présente bien l'aspect théorique.
  * [[http://forum.ubuntu-fr.org/viewtopic.php?id=372863|RDP sur un serveur ubuntu ?]] sur le forum ubuntu-fr.

----

//Contributeurs principaux : [[http://perso.nordnet.fr/stephane.patin-gaubert/fiches/fiche16.html|legaub]]//